package org.dei.perla.sys.llqruntime.datastructures;

import org.dei.perla.parser.expressions.*;
import org.dei.perla.parser.util.Duration;

/**
 * Classe che rappresenta un singolo record della tabella con i valori di campionamento
 * @author Camplani, Fortunato, Marelli, Rota et al.
 */
public class FrequencyRecord {
	
	/**
	 * Campi del singolo record
	 * |NODO_DA_TESTARE|CONDIZIONE_DI_CONFRONTO|FREQUENZA_SAMPLING|
	 */
	private Node pFirstNode;	
	private Duration pFrequency;
	
	/**
	 * Costruttore nel caso il confronto sia sempre fatto con TRUE
	 * @param parFirst L'espressione che deve verificarsi
	 * @param parDuration la frequenza di campionamento associata al verificarsi di parFirst
	 */
	public FrequencyRecord(Node parFirst, Duration parDuration) {
		
		this.pFirstNode = parFirst;
		this.pFrequency = parDuration;
		
	}
	
	/**
	 * @return il primo field del record (espressione da verificare)
	 */
	public Node getFirstOperand() {
		
		return this.pFirstNode;
	}
	
	/**
	 * @return l'oggetto Duration associato al verificarsi del record
	 */
	public Duration getFrequency() {
		
		return this.pFrequency;
		
	}
	
	/**
	 * Setter del nodo da verificare
	 * @param parNode il nodo da verificare
	 */
	public void setFirstNode(Node parNode) {
		
		this.pFirstNode = parNode;
		
	}
	
	/**
	 * Restituisce la stringa che rappresenta il contenuto del record
	 */
	public String toString() {
		
		return pFirstNode.toString()+"|"+pFrequency.getValue()+pFrequency.getTimeUnit().toString();
	}

}
